package dao;

import bean.dto.PermissionQueryPage;
import bean.pojo.Permissions;
import bean.vo.PermissionsOption;
import bean.vo.RouterVo;

import java.util.List;

/**
 * dao.impl
 * User: mcw
 * Date: 2024/12/16 上午10:08
 * motto:   春天（spring）没有虫子（bug)
 * Description:
 * Version: V1.0
 */
public interface PermissionDao {
    /**
     * 根据角色id查询该角色的所有一级菜单
     * @param roleId
     * @return
     */
    List<RouterVo> findRootByRoleId(Integer roleId);

    /**
     * 根据角色id和父菜单id查询该角色的所有子菜单
     * @param roleId
     * @param id
     * @return
     */
    List<RouterVo> findChildrenByRoleId(Integer roleId, Integer id);

    /**
     * 查询记录数
     * @param queryPage
     * @return
     */
    Long findByTotal(PermissionQueryPage queryPage);

    /**
     * 分页查询
     * @param queryPage
     * @return
     */
    List<Permissions> findByPage(PermissionQueryPage queryPage);

    /**
     * 查询所有父菜单信息
     * @return
     */
    List<PermissionsOption> findAllList();

    /**
     * 添加权限信息
     * @param permissions
     * @return
     */
    boolean insert(Permissions permissions);

    /**
     * 根据id删除权限信息
     * @param permissionId
     * @return
     */
    boolean deleteById(Integer permissionId);

    /**
     * 修改权限信息
     * @param permissions
     * @return
     */
    boolean update(Permissions permissions);

    /**
     * 查询所有菜单信息
     * @return
     */
    List<PermissionsOption> findAllPermissionList();

    /**
     * 查询该角色拥有的菜单数据
     * @param roleId
     * @return
     */
    List<Integer> findCheckedPermissionList(Integer roleId);
}
